package br.com.Escola.MB;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.persistence.EntityManager;

import br.com.Escola.DAO.DAO;
import br.com.Escola.Entidades.Funcionarios;
import br.com.Escola.Util.JPAUtil;

@ManagedBean
@SessionScoped
public class FuncionarioMB {

	private Funcionarios funcionario = new Funcionarios(); 
	private List<Funcionarios> listFuncionarios;
	
	public String gravarFuncionario() {
		DAO<Funcionarios> dao = new DAO<Funcionarios>(Funcionarios.class);
		
		dao.salvarEntidade(funcionario);
		funcionario = new Funcionarios();
		
		return "CadastroDeFuncionario?faces-redirect=true";
	}

	public String alterarFuncionario() {
		System.out.println("Passou pelo alterar!");
		DAO<Funcionarios> dao = new DAO<Funcionarios>(Funcionarios.class);
		
		dao.atualizarEntidade(funcionario);
		
		return "CadastroDeFuncionario?faces-redirect=true";
	}
	
	public List<Funcionarios> listarFuncionarios() {
		DAO<Funcionarios> dao = new DAO<Funcionarios>(Funcionarios.class);

		return  (List<Funcionarios>) dao.listarTodos();
	}
	
	@SuppressWarnings("unchecked")
	public String pesquisarFuncionario() {
		EntityManager em = new JPAUtil().getEntityManager();
		String nome = "%" + funcionario.getNome() + "%";
		listFuncionarios = em.createNamedQuery("funcionario.PesquisaPeloNome")
									.setParameter("nome", nome).getResultList();
		
		return "CadastroDeFuncionario?faces-redirect=true";
	}
	
	public Funcionarios getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionarios funcionario) {
		this.funcionario = funcionario;
	}

	public List<Funcionarios> getListFuncionarios() {
		return listFuncionarios;
	}

	public void setListFuncionarios(List<Funcionarios> listFuncionarios) {
		this.listFuncionarios = listFuncionarios;
	}
}
